Unity Lighting | 您所在的位置:网站首页 › unity 环境光照 › Unity Lighting |
识别不同种类的光源 在游戏或实时应用程序中,我们可能会创建多种不同种类的场景,比如室内场景、室外场景、真实的场景或完全想象的场景。即便项目是一个完全的想象的或是科幻的故事,灯光也是非常重要的一环,它能极大提升沉浸感。 在光照设计和实现中,识别出一个场景所需要的光照是关键的初始步骤: 自然光(Natrual lighting):通常是日光或月光 模拟光(Motivated lighting):场景中模拟特定种类的真实光源,比如路灯或车灯 色调光(Key lighting):场景中照明焦点物体的灯光 环境光(Ambient lighting):在Uinty中也叫漫反射环境光(diffuse enviromental light),环境光是存在于场景中但没有特定来源的光。 注意:还有更多种类的灯光,不在此展开 配置平行光 对于室外场景,常见的自然光源是太阳或月亮。在Unity中,当我们创建了一个场景后,默认会有一个Direcitonal Light的游戏物体,这个游戏物体的功能就是太阳或月亮。 平行光源会朝着设定好的方向(在gizmo中可以打开或关闭方向显示)发出平行光: 对于平行光来说,我们可以认为它离场景非常远。因此它发出的平行光可以认为不是发散的,它发出的光不受到光源的大小和位置影响,而只和其方向有关。 在场景中测试一下平行光: 首先,确保天空盒会起效果,在下图红框处记得勾选Skybox选项 然后找到场景中的Directional Light,尝试调整其大小和位置,我们会发现场景没有发生变化 通过调整平行光的方向,可以看到场景发生了明显变化 在Direcitonal Light的Inspector中,尝试调整一下灯光的颜色 天空盒基础知识 了解了平行光之后,我们来看另一个重要的东西:天空盒。 在Unity中,天空背景是通过使用一种称为skybox的特殊材质来创建的。天空盒是立方体,每一面上有不同的纹理。当我们使用天空盒来渲染天空的时候,Unity会将场景放到天空盒立方体内,Unity会先渲染这个立方体。 天空盒也能够包含远距离的环境信息。这些信息会对场景的空间和深度感造成影响,包括: 景观特性 - 例如场景远处有高山背景 建筑物 - 例如只能在地平线上可见的宏伟的城市 用于天空盒的材质需要使用Skybox shader,有两类Skybox shader: Textured(纹理化的):使用材质纹理来生成天空盒的shader Procedural(程序化的):使用材质属性来生成天空盒的shader 创建一个程序化的(Procedural)天空盒 接下来我们创建一个自定义的程序化天空盒: 1. 新建材质,取名为MySkyBox 2. 选择MySkyBox,在Inspector面板中,将Shader选择为Skybox -> Procedural 3. 在配置天空盒之前,我们最好能够能让场景使用这个自定义的材质来渲染天空,以便修改参数的时候能够直观地看到效果。我们在Window -> Rendering -> Lighting选项窗口中,选择Enviroment,将Skybox Material选择为我们刚刚创建的材质(也可以直接拖拽) 4. 回到MySkyBox的Inspector面板,我们来看看它都有些属性: Sun: 表示太阳的样子,选择High Quality的话,太阳会带光晕效果 选择Simple的话,太阳只是简单显示一个圆盘 Sun Size: 太阳的大小,这个没有太多必要细说,值越大场景中太阳看起来就越大 Atomsphere Thickness:大气层厚度,大气层厚度越厚,它吸收的光线就越多 Sky Tint:天空的色调,比如我们调整它为蓝色 Ground:地平线下的区域颜色(地面),比如我们调整它为红色 Exposure:曝光度,调整天空的曝光度。我们可以简单地用亮度来理解就行了。 |
CopyRight 2018-2019 实验室设备网 版权所有 |